使用 NuGet 包管理器在 Visual Studio 中安装和管理包 您所在的位置:网站首页 visual studio怎么导出项目 使用 NuGet 包管理器在 Visual Studio 中安装和管理包

使用 NuGet 包管理器在 Visual Studio 中安装和管理包

2023-08-17 20:07| 来源: 网络整理| 查看: 265

使用 NuGet 包管理器在 Visual Studio 中安装和管理包 项目 08/10/2023

通过 Visual Studio for Mac 中的 NuGet 包管理器 UI,可轻松安装、卸载和更新项目和解决方案中的 NuGet 包。

本文仅适用于 Windows 用户。 如果使用的是 Visual Studio for Mac,请参阅在项目中包括 NuGet 包。

先决条件

使用任意版本安装 Visual Studio 2022 for Windows。与 NET 相关的工作负荷。

可以从 visualstudio.com 免费安装 2019 Community 版,或者使用 Professional 或 Enterprise 版。

安装 .NET 工作负载时,Visual Studio 2017 及更高版本会自动包含 NuGet 功能。 若要在Visual Studio 安装程序中单独安装它,请选择“单个组件”选项卡,然后在“代码工具”下选择 NuGet 包管理器。

如果 Visual Studio 2015 中缺少 NuGet 包管理器,请选中“工具”“扩展和更新...”并搜索“NuGet 包管理器”扩展。 如果无法在 Visual Studio 中使用扩展安装程序,请直接从 https://dist.nuget.org/index.html 下载扩展。

如果你还没有帐户,请在 nuget.org 上注册一个免费帐户。 必须先确认该帐户,才能上传包。

查找和安装包

若要使用 Visual Studio 查找并安装 NuGet 包,请执行以下步骤:

在 解决方案资源管理器 中加载项目,然后选择“项目>管理 NuGet 包”。

系统会打开“NuGet 包管理器”窗口。

选择“ 浏览 ”选项卡,按当前所选源的受欢迎程度显示包 (请参阅 包源) 。 使用左上角的搜索框搜索特定包。 从列表中选择一个包以在右侧窗格中显示其信息,这使你可以选择要安装的版本。

在右窗格中,从下拉列表中选择 版本 。 如果要在 “版本” 列表中包括预发行版版本,请选择“ 包括预发行版”。

若要安装 NuGet 包,请选择“ 安装”。 系统可能会要求你接受许可条款或提示你验证安装。

Visual Studio 随即将包及其依赖项安装到项目中。 安装完成后,添加的包会显示在“已安装”选项卡上。还可以在项目解决方案资源管理器的“依赖项>包”节点中找到包。 安装包后,可以使用语句在项目中 using 引用它。

(可选) NuGet 具有两种格式,其中项目可以使用包: PackageReference 和 packages.config。若要设置默认格式,请选择 “工具>选项”,展开 “NuGet 包管理器”,选择“ 常规”,然后选择 “默认包管理”格式。 有关详细信息,请参阅 “选择默认包管理格式”。

卸载包

要获取 NuGet 包,请执行以下步骤:

在解决方案资源管理器中加载项目,选择“项目>管理 NuGet 包”,然后选择“已安装”选项卡。

选择要在左窗格中卸载的包 (使用 “搜索 ”框查找它(如有必要)) ,然后从右窗格中选择“ 卸载 ”。

更新包

要获取 NuGet 包,请执行以下步骤:

在 解决方案资源管理器 中加载项目,然后选择“项目>管理 NuGet 包”。 对于网站项目,请先选择 Bin 文件夹。

选择“更新”选项卡,查看所选包源中包含可用更新的包。 选中“包含预发布版本”,以便在更新列表中包含预发布版本的包。

选择要更新的包。 在右侧窗格中,从下拉列表中选择所需的 版本 ,然后选择“ 更新”。

对于某些包,“ 更新 ”按钮处于禁用状态,并显示以下消息: SDK 隐式引用。若要更新包,请更新它所属的 SDK。 此消息指示包是较大框架或 SDK 的一部分,无法独立更新。 (此类包在内部标有 True。) 例如,Microsoft.NETCore.App 是 .NET Core SDK 的一部分,并且包版本与应用程序使用的运行时框架的版本不同。 若要下载新版本的 . NET Core,请更新 .NET Core 安装。 有关详细信息,请参阅 .NET Core 元包和版本控制。 这适用于以下常用包:

Microsoft.AspNetCore.All Microsoft.AspNetCore.App Microsoft.NETCore.App NETStandard.Library

若要将多个包更新到其最新版本,请在 NuGet 包列表中选择它们,然后选择“ 更新”。

还可以从 “已安装” 选项卡更新单个包。在这种情况下,还可以选择 “版本 ”和“ 包括预发行版 ”选项。

管理解决方案的包

管理解决方案的包是同时处理多个项目的便捷方式。

在 解决方案管理器中选择解决方案,然后选择 “工具>NuGet 包管理器>管理解决方案的 NuGet 包”。

在“ 管理解决方案的 NuGet 包 ”窗口中,选择受操作影响的项目。

“合并”选项卡

开发人员通常认为,在同一解决方案的不同项目中使用相同 NuGet 包的不同版本的做法不好。 Visual Studio 允许对 NuGet 包使用通用版本。 为此,请使用 NuGet 包管理器窗口的“合并”选项卡来发现解决方案中不同项目使用具有不同版本号的包的位置。

在本例中,ClassLibrary1 项目使用的是 EntityFramework 6.2.0,而 ConsoleApp1 使用的是 EntityFramework 6.1.0。 要合并包版本,请执行以下步骤:

在“ 合并 ”选项卡中,选择要在项目列表中更新的项目。

选择要用于版本列表中的所有这些项目 的版本 。

选择“安装” 。

包管理器将选定的包版本安装到所有选定的项目中,之后包不再显示在“合并”选项卡上。

包源

Visual Studio 会忽略包源的顺序,使用来自任何首先响应请求的源的包。 有关详细信息,请参阅 还原包。 有关如何从特定源加载包的信息,请参阅 包源映射。

要获取 NuGet 包,请执行以下步骤:

若要更改 Visual Studio 从中加载包元数据的源,请从 包源 选择器中选择源。

若要管理包源,请选择“设置”图标或选择“工具>选项”。

在 “选项” 窗口中,展开 NuGet 包管理器 节点,然后选择 “包源”。

要添加源,请选择 +,编辑名称,在“源”控件中输入 URL 或路径,然后选择“更新”。

源现在显示在 “包源 ”下拉列表中。

若要更改包源,请选中它,在“名称”和“源”框中进行编辑,然后选择“更新”。

若要禁用包源,请清除列表中名称左侧的框。

若要删除包源,请选中它,然后选择“X”按钮。

如果在删除某个包源后,该包源重新出现,则它可能会列在计算机级或用户级 文件中。 有关这些文件的位置,请参阅 通用 NuGet 配置。 通过手动编辑包源或使用 nuget 源命令删除文件中的包源。

NuGet 包管理器选项控件

选择包时,NuGet 包管理器会显示版本选择器下方的可展开选项控件。 请注意,对于某些项目类型,仅提供“显示预览窗口”选项。

以下各节介绍了这些选项。

安装与更新选项

这些选项仅适用于某些项目类型:

“依赖项行为”用于配置 NuGet 如何决定要安装哪些版本的依赖包: VM1 具有以下设置:

“忽略依赖项”会跳过安装任何依赖项,这通常会破坏正在安装的软件包。 如果选择“最低”[默认选项],则安装具有可满足主要选定包要求的最小版本号的依赖项。 如果选择“最高版本的修补程序”,则安装的版本的主要版本号和次要版本号相同,但修补程序版本号最高。 例如,如果指定版本 1.2.2,则会安装以 1.2 开头的最高版本 如果选择“最高次要版本”,则安装的版本的主要版本号相同,但次要版本号和修补程序版本号最高。 如果指定版本 1.2.2,则会安装以 1 开头的最高版本 选择“最高”可安装包的最高可用版本。

“文件冲突操作”指定 NuGet 应如何处理项目或本地计算机中已存在的包: VM1 具有以下设置:

“提示”指示 NuGet 询问是保留还是覆盖现有包。 “全部忽略”指示 NuGet 跳过覆盖任何现有包。 “全部覆盖”指示 NuGet 覆盖任何现有包。

卸载选项

这些选项仅适用于某些项目类型:

“删除依赖项”:如果选中,则删除任何依赖包(如果它们未在项目中的其他位置引用)。

“在存在依赖项时仍强制卸载”:选中后,即使在项目中仍然引用了该包,也会卸载它。 此选项通常与“删除依赖项”一起选中,用于删除包及其安装的任何依赖项。 不过,使用此选项可能会导致项目中的引用中断。 在这种情况下,可能需要重新安装其他包。

相关视频 通过 Visual Studio 安装和使用 NuGet 包 在第 9 频道和 YouTube 上查找更多 NuGet 视频。 另请参阅

若要深入了解分区,请参阅以下文章:

什么是 NuGet? 包使用工作流 查找和选择包 项目文件中的包引用 使用 .NET CLI 安装和使用包。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有